<template>


  <SearchTablePage :search-config="baseTableSearchModel" :table-config="baseTableModel" />

</template>

<script lang="tsx" setup>
defineOptions({
  name: 'DrillInfoPageData',   //全局别名
  title: '表格页',   //标题
});
import { useSysDicList } from '~/src/utils/useSysDicList';
// 接口
import DrillInfoApi from '/@/api/DrillInfoApi.ts';

import { useTemplateName } from '~/src/utils/useTemplateName';

import FORM_FIELD_TYPE from '/@/constants/FormFieldType';
import VDialog from '/@/utils/dialogUtil.ts'

const router = useRouter();
const baseTableSearch = ref(null as any);
const editRef = ref<any>(null);
const typeList = useSysDicList("drill_type")
const exportXlsName = useTemplateName("template_type_2")
// 表格搜索初始化searchModel
const baseTableSearchModel = ref({
  columnCount: 4,
  expandLimit: 7,
  autoFit: true,
  columnWidth: '320px',
  labelPosition: 'right',
  labelWidth: '100px',
  items: [ //搜索项初始化

    //  {
    //              label: "id",
    //              field: "id",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },


    {
      label: "主办方",
      field: "drillSponsor",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    //  {
    //              label: "协办方",
    //              field: "drillAssist",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },
    {
      label: "所属区域",
      field: "areaId",
      clearable: true,
      render() {
        return <CitySelect />
      },
      placeholder: "请输入",

    },


    //  {
    //              label: "所属区域",
    //              field: "area",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,
    //             placeholder:"请输入",
    //          },

    {
      label: "开始时间",
      field: "startTime",
      clearable: true,
      type: FORM_FIELD_TYPE.DATE_RANGE,
      startDateField: "startDrillTime",
      endDateField: "endDrillTime",
      placeholder: "请输入",

      config: {
        props: {   //日期精度配置
          type: "daterange",
          startPlaceholder: "开始日期",
          endPlaceholder: "结束日期",
          format: "YYYY-MM-DD",
        }
      },
    },

    //  {
    //              label: "结束时间",
    //              field: "endTime",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.DATE_RANGE,
    //             placeholder:"请输入",

    //          config: {
    //              props: {   //日期精度配置
    //                   type: "daterange",
    //                  startPlaceholder: "开始日期",
    //                  endPlaceholder: "结束日期",
    //                  format: "YYYY-MM-DD",
    //                    }
    //             },
    //          },

    //  {
    //              label: "是否收费 0否 1是",
    //              field: "isCharge",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "收费金额",
    //              field: "price",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "联系人",
    //              field: "contactsOne",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "联系电话",
    //              field: "contactsOnePhone",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "联系人2",
    //              field: "contactsTwo",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "联系电话2",
    //              field: "contactsTwoPhone",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    {
      label: "培训举办地址",
      field: "address",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },
    {
      label: "培训名称",
      field: "drillName",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "培训类型",
      field: "type",
      clearable: true,
      type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
      options: typeList,

      placeholder: "请输入",

    },

    {
      label: "是否考试",
      field: "isExam",
      clearable: true,
      type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
      options: [
        {
          value: 1,
          label: "否"
        },
        {
          value: 0,
          label: "是"
        }
      ],

      placeholder: "请输入",

    },

    //  {
    //              label: "是否上传身份证",
    //              field: "isIdentityCard",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "身份证地址",
    //              field: "identityCardUrl",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "是否上传照片",
    //              field: "isImage",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "照片地址",
    //              field: "imageUrl",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "报名结束时间",
    //              field: "signEndTime",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.DATE_RANGE,
    //             placeholder:"请输入",

    //          config: {
    //              props: {   //日期精度配置
    //                   type: "daterange",
    //                  startPlaceholder: "开始日期",
    //                  endPlaceholder: "结束日期",
    //                  format: "YYYY-MM-DD",
    //                    }
    //             },
    //          },

    //  {
    //              label: "培训议程",
    //              field: "drillAgenda",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "证书抬头",
    //              field: "certificateHeader",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "证书日期",
    //              field: "certificateDate",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.DATE_RANGE,
    //             placeholder:"请输入",

    //          config: {
    //              props: {   //日期精度配置
    //                   type: "daterange",
    //                  startPlaceholder: "开始日期",
    //                  endPlaceholder: "结束日期",
    //                  format: "YYYY-MM-DD",
    //                    }
    //             },
    //          },

    //  {
    //              label: "证书模板",
    //              field: "certificateTemplate",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "创建人",
    //              field: "creator",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "修改人",
    //              field: "reviser",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "排序",
    //              field: "sort",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.INPUT,

    //             placeholder:"请输入",

    //          },

    //  {
    //              label: "创建时间",
    //              field: "create_time",
    //              clearable: true,
    //              type: FORM_FIELD_TYPE.DATE_RANGE,
    //             placeholder:"请输入",

    //          config: {
    //              props: {   //日期精度配置
    //                   type: "daterange",
    //                  startPlaceholder: "开始日期",
    //                  endPlaceholder: "结束日期",
    //                  format: "YYYY-MM-DD",
    //                    }
    //             },
    //          },

  ],

  buttons: [    //功能区域


    {
      name: "新增培训",
      buttonClass: 'primary',
      width: 100,
      click: ({ row, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        VDialog.open({
          title: '新增',

          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/drillInfo/edit',
            query: {},

          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
    },
    {
      name: "批量删除",
      buttonClass: 'danger',
      width: 100,
      isShow: () => {
        return false;
      },
      click: () => {   //暴露的方法钩子
        //  console.log(baseTable.value.getSelection());
      },
    },
    {
      name: "导出",
      buttonClass: 'primary',
      width: 100,
      click: ({ row, handlers }) => {   //暴露的方法钩子
        DrillInfoApi.pageDataXls(handlers.getRequestParams(), handlers.getXlsTitle(), exportXlsName.value)
      }
    },
  ]
})
// 表格初始化Model
const baseTableModel = ref({
  border: true,
  pagination: true,
  inline: true,
  selectable: true,
  isFullscreen: false,
  tooltip: true,
  minWidth: '200px',
  actionWidth: "500px",
  actionLimit: 6,
  data: {    //table  初始化
    current: 1,
    size: 10,
    total: 100,
    data: []
  },
  requestData: { api: DrillInfoApi.getPageData, query: {} },   //数据源 参数有效性： 'steady|transient'
  columns: [
    //  {
    //   label: "序号",
    //   field: "id",
    //   width:100,
    //     },
    {
        label: "启用状态",
        field: "status",
        width: 120,
        fieldFormat: "tag",
        valueMap: [
            {
                label: "启用",
                value: 0,
                type: "success"
            },
            {
                label: "禁用",
                value: 1,
                type: "info"
            }
        ]
    },
    {
        label: "数据来源",
        field: "sourceType",
        width: 120,
        fieldFormat: "tag",
        valueMap: [
            {
                label: "管理端",
                value: 0,
                type: "info"
            },
            {
                label: "企业端",
                value: 1,
                type: "success"
            }
        ]
    },
    {
      label: "培训名称",
      field: "drillName",
      width: 180,
    },
    {
      label: "主办方",
      field: "drillSponsor",
      width: 180,
    },
    // {
    //  label: "协办方",
    //  field: "drillAssist",
    //  width:180,
    //    },
    // {
    //  label: "所属区域id",
    //  field: "areaId",
    //  width:180,
    //    },
    {
      label: "所属区域",
      field: "area",
      width: 180,
    },
    {
      label: "培训类型",
      field: "typeText",
      // fieldFormat: "map-value",
      // valueMap: typeList,
      width: 180,
    },
    {
      label: "是否考试",
      field: "isExamText",
      // fieldFormat: "flag",
      // fieldFormat: 'tag',
      // valueMap: [
      //   {
      //     value: '1',
      //     label: "否",
      //     type: "danger"
      //   },
      //   {
      //     value: '0',
      //     label: "是",
      //     type: "primary"
      //   }
      // ],
      width: 120,
    },
    {
      label: "开始时间",
      field: "startTime",
      width: 200,
    },
    {
      label: "结束时间",
      field: "endTime",
      width: 200,
    },
    {
      label: "是否收费",
      field: "isChargeText",
      // fieldFormat: 'tag',
      // valueMap: [
      //   {
      //     value: '1',
      //     label: "否",
      //     type: "paimary"
      //   },
      //   {
      //     value: '0',
      //     label: "是",
      //     type: "danger"
      //   }
      // ],
      width: 120,
    },
    {
      label: "收费金额",
      field: "price",
      width: 150,
    },
    {
      label: "培训举办地址",
      field: "address",
      width: 180,
    },
    {
      label: "联系人",
      field: "contactsOne",
      width: 180,
    },
    {
      label: "联系电话",
      field: "contactsOnePhone",
      width: 180,
    },
    {
      label: "联系人2",
      field: "contactsTwo",
      width: 180,
    },
    {
      label: "联系电话2",
      field: "contactsTwoPhone",
      width: 180,
    },
    {
      label: "是否上传身份证",
      field: "isIdentityCardText",
      // fieldFormat: 'tag',
      // valueMap: [
      //   {
      //     value: '1',
      //     label: "否",
      //     type: "danger"
      //   },
      //   {
      //     value: '0',
      //     label: "是",
      //     type: "primary"
      //   }
      // ],
      width: 180,
    },
    // {
    //  label: "身份证地址",
    //  field: "identityCardUrl",
    //  width:180,
    //    },
    {
      label: "是否上传照片",
      field: "isImageText",
      // fieldFormat: 'tag',
      // valueMap: [
      //   {
      //     value: '1',
      //     label: "否",
      //     type: "danger"
      //   },
      //   {
      //     value: '0',
      //     label: "是",
      //     type: "primary"
      //   }
      // ],
      width: 120,
    },
    // {
    //  label: "照片地址",
    //  field: "imageUrl",
    //  width:180,
    //    },
    // {
    //   label: "报名结束时间",
    //   field: "signEndTime",
    //   width: 200,
    // },
    {
      label: "培训议程",
      field: "drillAgenda",
      width: 180,
      tooltip: true,
    },
    // {
    //  label: "证书抬头",
    //  field: "certificateHeader",
    //  width:180,
    //    },
    // {
    //  label: "证书日期",
    //  field: "certificateDate",
    //  width:200,
    //    },
    // {
    //  label: "证书模板",
    //  field: "certificateTemplate",
    //  width:180,
    //    },
    // {
    //  label: "创建人",
    //  field: "creator",
    //  width:180,
    //    },
    // {
    //  label: "修改人",
    //  field: "reviser",
    //  width:180,
    //    },
    // {
    //  label: "排序",
    //  field: "sort",
    //  width:120,
    //    },
    {
      label: "创建时间",
      field: "create_time",
      width: 200,
    },
    {
      label: "更新时间",
      field: "update_time",
      width: 200,
    },
  ],


  actions: [
    {
      name: "启用",
      buttonClass: "primary",
      buttonType: "text",
      isShow: (row)=>{
        return row["status"] == 1 && row["sourceType"] == 1
      },
      click: ({row, handlers})=>{
        console.log("启用 id:",row.id)
        DrillInfoApi.updateStatus({
          id: row.id,
          status: 0
        }).then(_=>{
          handlers.refresh()
        })
      }
    },
    {
      name: "禁用",
      buttonClass: "danger",
      buttonType: "text",
      isShow: (row)=>{
        return row["status"] == 0 && row["sourceType"] == 1
      },
      click: ({row, handlers})=>{
        console.log("启用 id:",row.id)
        DrillInfoApi.updateStatus({
          id: row.id,
          status: 1
        }).then(_=>{
          handlers.refresh()
        })
      }
    },
    {
      name: "复制",

      buttonClass: 'primary',
      buttonType: 'text',
      click: ({ row, handlers }, state) => {
        console.log("drillInfo row", row)
        const { id, ...rest } = row
        VDialog.open({
          title: '复制新增',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/drillInfo/edit',
            query: { ...rest },

          },
          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });
      },
      isShow: (row: any) => {
        return row.sourceType != 0;
      },
      fixed: 'right'
    },
    {
      name: "编辑",
      buttonClass: 'primary',   //按钮颜色控制
      buttonType: 'text',      // 按钮风格   text  link  button
      isShow: (row: any) => {
        return row.sourceType != 0;
      },
      click: ({ row, index, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        VDialog.open({
          title: '编辑',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/drillInfo/edit',
            query: { drillInfoId: row.id },

          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
      fixed: 'right'
    },
    {
      name: "报名二维码",
      buttonClass: 'primary',   //按钮颜色控制
      buttonType: 'text',      // 按钮风格   text  link  button
      isShow: (row: object) => {  //根据业务做动态隐藏张氏
        return true
      },
      click: async ({ row, index, handlers }) => {        // 点击回调事件方法钩子，  点击触发


        const { data } = await DrillInfoApi.getRegistrationQRCode({ drillInfoId: row["id"] })
        console.log("data:", data)
        VDialog.open({
          title: '报名二维码',
          dialogType: DialogType.QRCode,
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/drillInfo/qrcode',
            // signin  签到 signup 报名
            query: { link: data },

          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
      fixed: 'right'
    },
    {
      name: "签到二维码",
      buttonClass: 'primary',   //按钮颜色控制
      buttonType: 'text',      // 按钮风格   text  link  button
      isShow: (row: object) => {  //根据业务做动态隐藏张氏
        return true
      },
      click: async ({ row, index, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        const { data } = await DrillInfoApi.getSignQRCode({ drillInfoId: row["id"] })
        console.log("data:", data)
        VDialog.open({
          title: '签到二维码',
          dialogType: DialogType.QRCode,
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/drillInfo/qrcode',
            // signin  签到 signup 报名
            query: { link: data },
          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
      fixed: 'right'
    },
    {
      name: "学习二维码",
      buttonClass: 'primary',   //按钮颜色控制
      buttonType: 'text',      // 按钮风格   text  link  button
      isShow: (row: object) => {  //根据业务做动态隐藏张氏
        return true
      },
      click: async ({ row, index, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        const { data } = await DrillInfoApi.getLearningQRCode({ drillInfoId: row["id"] })
        console.log("data:", data)
        VDialog.open({
          title: '学习二维码',
          dialogType: DialogType.QRCode,
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/drillInfo/qrcode',
            // signin  签到 signup 报名
            query: { link: data },
          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
      fixed: 'right'
    },
    // {
    //     name: "更换签到二维码",
    //     buttonClass: 'primary',   //按钮颜色控制
    //     buttonType: 'text',      // 按钮风格   text  link  button
    //     isShow: (row: object) => {  //根据业务做动态隐藏张氏
    //         return true
    //     },
    //     click: ({row,index,handlers}) => {        // 点击回调事件方法钩子，  点击触发
    //          $baseConfirm('您确定要更换签到二维码吗?', null, async () => {

    //             // const { message } =  await DrillInfoApi.changeSigninQrCode()
    //             // $baseMessage(message, 'success', 'vab-hey-message-success');
    //             handlers.refresh()
    //         })

    //       //   VDialog.open({
    //       //       title: '签到二维码',
    //       //       content:{ //内容初始形式
    //       //           type: 'component', //text:"",预留文本
    //       //           name:'/drillInfo/qrcode',
    //       //           query: {},

    //       //       },

    //       //       callBack: (data:any) => {
    //       //         handlers.refresh()
    //       //       },
    //       //       onClose: () => {
    //       //           console.log("对话框已关闭");
    //       //       },
    //       //   });

    //     },
    //     fixed: 'right'
    // },

    // {
    //   name: "删除",
    //   buttonClass: 'danger',
    //   buttonType: 'text',
    //   fixed: 'right',
    //   click: ({ row, index, handlers }) => {

    //     $baseConfirm('您确定要删除当前项吗', null, async () => {

    //       const { message } = await DrillInfoApi.del({ drillInfoIds: row.id })
    //       $baseMessage(message, 'success', 'vab-hey-message-success');

    //       handlers.refresh()

    //     })

    //   }

    // },
    // {
    //     name: "报名二维码",
    //     buttonClass: 'warning',
    //     buttonType: 'text',
    //     fixed: 'right',
    //     click: ({row,index,handlers}) => {
    //     }
    // },
    // {
    //     name: "签到二维码",
    //     buttonClass: 'warning',
    //     buttonType: 'text',
    //     fixed: 'right',
    //     click: ({row,index,handlers}) => {
    //     }
    // },
    // {
    //     name: "更换签到二维码",
    //     buttonClass: 'primary',
    //     buttonType: 'text',
    //     fixed: 'right',
    //     click: ({row,index,handlers}) => {
    //     }
    // },

  ]

})



onActivated(() => {
})



</script>
